#pragma once

#include "CommonPlatformUtilities.h"
class CWinPlatformUtilities :
	public CommonPlatformUtilities
{
public: 
	CWinPlatformUtilities();
public: 
	static CWinPlatformUtilities * getInstance();
	virtual char * WideCharToChar(XUINT32 cstr, const XCHAR * pstr, XUINT32 * pcstr, char * pstrDest);
	virtual XCHAR * CharToWideChar(XUINT32 * cstr, const char * pstr);
	virtual XUINT32 * WideCharTo32Char(XUINT32 cstr, const XCHAR * pstr);
	virtual XCHAR * WideChar32ToWideChar(XUINT32 cstr, const XUINT32 * pStr);
	virtual void XFreeCharArray(char * pStr);
	virtual HRESULT XGetInstalledVersion(XCHAR * * ppszInstalledVersion, XUINT32 * pcbInstalledVersion);
	virtual XUINT32 Xswprintf_s(XCHAR * pBuf, XUINT32 cchBuf, const XCHAR * pFormat, ...);
	virtual XUINT32 vXswprintf_s(XCHAR * pBuf, XUINT32 cchBuf, const XCHAR * pFormat, char * args);
	virtual XBOOL IsUILanguageRTL();
	virtual XBOOL Is64bitInstalled();

};

